package com.swb.mybatis04emp.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.swb.mybatis04emp.dao.EmpDAO;
import com.swb.mybatis04emp.entity.Emp;
import com.swb.mybatis04emp.service.EmpService;
import com.swb.mybatis04emp.utils.MyBatisUtils;

import java.util.List;

/**
 * @title: EmpServiceImpl
 * @author: 流沐颖
 * @date:2022/6/2 8:55
 * @description:
 * @version: study
 */
public class EmpServiceImpl implements EmpService {
    /**
     * 使用MyBatisUtils--创建dao层接口对象
     */
    EmpDAO empDAO = MyBatisUtils.getMapper(EmpDAO.class);

    /**
     * 执行登录
     *
     * @param ename
     * @return
     */
    @Override
    public boolean doLogin(String ename, String pwd) {

        Emp emp = empDAO.doLogin(ename);
        System.out.println(emp);

        boolean flag = false;
        // 若返回值不为空且密码一致 则说明登录成功！
        if (emp != null && pwd.equals(emp.getPwd())) {
            flag = true;
        }
        return flag;


    }

    /**
     * 返回数据库中所有数据
     *
     * @return
     */
    @Override
    public List<Emp> getAll() {
        return empDAO.getAll();
    }

    /**
     * 执行添加
     *
     * @param emp
     * @return
     */
    @Override
    public int addEmp(Emp emp) {
        return empDAO.addEmp(emp);
    }

    /**
     * 执行删除
     *
     * @return
     */
    @Override
    public int delEmp(int eno) {
        return empDAO.delEmp(eno);
    }

    /**
     * 通过eno找到相应的数据
     *
     * @param eno
     * @return
     */
    @Override
    public Emp getEmpByEno(int eno) {
        return empDAO.getEmpByEno(eno);
    }

    /**
     * 执行更新
     *
     * @param emp
     * @return
     */
    @Override
    public int update(Emp emp) {
        return empDAO.updateEmp(emp);
    }

    /**
     * 处理分页逻辑
     * @param pageNum
     * @param pageSize
     * @return
     */
    @Override
    public PageInfo<Emp> getEmpByPages(Integer pageNum, int pageSize) {

            EmpDAO mapper = MyBatisUtils.getMapper(EmpDAO.class);
            PageHelper.startPage(pageNum, pageSize);
            List<Emp> all = mapper.getAll();
            PageInfo<Emp> info = new PageInfo<>(all);
            return info;

    }


}
